As smart mobile devices become widespread and ubiquitous, natural language interactions are becoming popular for daily functionalities such as information retrieval, shopping assistance, reservations, ticketing, social-media postings, correspondence, note-taking and time-management. Some devices may include a virtual personal assistant (VPA) to provide a natural language interface to those functionalities. A typical VPA includes or references a domain model that defines the potential actions and parameters that may be included in a natural language request. Generating the domain model for a VPA typically includes several time-consuming manual stages. For example, natural language templates representing the available actions in the relevant domain (also known as intents) and associated parameters (also known as slots) may be generated manually, or a semantic web representing key terms in the relevant domain may be generated manually.